#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"authentifacation.h"
/*saisir une variable de type passe*/
void saisir_passe(Passe *p)
{
printf("\n       Nom d utulisateur: ");
scanf("%s",p->log_in);
printf("\n       Mot de passe: ");
scanf("%s",p->mot_de_passe);
}
/*tester si deux variables de types passe sont identiques ou pas*/
int tester_passe(Passe p,Passe p1)
{
if(strcmp(p.log_in,p1.log_in)==0)//meme log in
  {
    if(strcmp(p.mot_de_passe,p1.mot_de_passe)==0)//meme mot de passe
      return(1);//Passe verifier
    else
      return 0;//Passe Non verfier
  }
else
return 0;//Passe non verifier
}

/*verifier si le passe taper est identiques avec celui enrgistrer*/
int verifier_authenti(char fichierMotPasse[],Passe p)
{Passe p1;FILE *f;int n;
f=fopen(fichierMotPasse,"rb");
if(f!=NULL)
  {
    fread(&p1,sizeof(Passe),1,f);
    n=tester_passe(p,p1);//verfier mot de passe
     return n;
 }
else
return -1;//probléme avec le fichier
fclose (f);
}
/*permet de changer la mot de passe déja enregistrer*/
void changer_motPasse(char fichierMotPasse[])
{
Passe p;int n;
FILE *f;
printf("\nVeuillez saisir l ancien mot de passe");
saisir_passe(&p);
n=verifier_authenti(fichierMotPasse,p);//verifier l'ancien mot de passe
if(n==1)//ancien mot de passe verifier 
 {/*saisir la nouvelle mot de passe*/
  printf("\nveuillez inserer le nouveau mot de passe");
  saisir_passe(&p);
  f=fopen(fichierMotPasse,"wb");
  fwrite(&p,sizeof(Passe),1,f);//enregistrer mot de passe
  printf("\n le mot de passe à été changée");
  fclose(f);
  }
 else printf("\n le mot de passe insére n est pa valide");//l'ancienne mot de passe n'est pas verifier
}
/*permet de saisir mot de passe et de verifier l'authentification pour demarer le programme si non 
on quitte le programme*/
int debuter_programme(char fichier[])
{  FILE *f;
   int n,n1,i=1;
  Passe p,p1;
 f=fopen(fichier,"rb");
if(f!=NULL)//le fichier est ouvert
{ fread(&p,sizeof(Passe),1,f);
    do
     {
       if(i>1)//si le mot de passe deja taper et non verifier*/
       printf("\n il vous reste seulement %d fois pour saisir correctement le mot de passe",4-i);
     saisir_passe(&p1);
     n1=verifier_authenti(fichier,p1);
       if(n1!=1)
        printf("\n les donnés ne sont pas valide\n");
       i++; 
     }
   while(n1!=1&&i!=4);//quitter si mot de passe verifier ou nombre de fois a expirée
  if(i==4)
  return -1;//nombre de fois expérée
  else 
   return 0;//mot de passe vérifier
   
}
else
{printf("\nImpossible d ouvrire le fichier");
 fclose(f);

}
}






